1. Technical Field
The present invention relates generally to an Internet telephone system operating over a Public Switched Telephone Network (PSTN), and more specifically to a dynamic error correction algorithm for creating packet redundancy to prevent the loss of information.
2. Discussion of the Prior Art
The idea of sending telephone calls over the Internet is relatively new, brought on by the desire to avoid expensive long distance telephone bills from the major telephone companies. While the concept of sending audio and video data, e.g. cable programming, over the Internet has been known since 1990, it was not until 1993 that a program called Maven was released to transmit voice data using a personal computer. In 1995, VocalTec offered a beta test version of its Windows-based Internet Telephone, and that same year DigiPhone offered a full-duplex Internet telephone system, which allows users to talk and listen simultaneously.
Several problems must be addressed to make an Internet telephone product commercially successful. One of the most important is maintaining sound quality despite dropouts or gaps caused by the Internet. The digital nature of the Internet has theoretical advantages vis-a-vis analog networks, but when the Internet is busy a caller may have difficulty getting through to another party. Moreover since the Internet is built to transfer data packets rather than continuous streams of sound, there may be delays and losses.
For a telephone call to be placed over the Internet, the analog voice information must be converted into a digital format as a series of data packets that are communicated through the Internet's web of computers, routers and servers. The maximum rate that a 28.8 kbps modem can send voice data is only 3 kbytes/second, but good voice quality requires 8 kbytes/second. Therefore, data compression algorithms are designed to prevent the customer from noticing delays between packets in the data stream.
Analog voice messages spoken by customers are digitized and then compressed by a compression/decompression (`codec`) algorithm. There are at least ten different types of codecs, each designed to compress data optimally for a particular application. Some codecs use audio interpolation to fill in dropouts or gaps. Other codecs create high quality sound, but use complex algorithms that are slower to execute on a given computer. Still other codecs use faster compression algorithms, but the sound quality is not as high. Whether the speed of the compression algorithm is important for a particular application may depend on the speed of the computer executing the algorithm. Different codecs use different compression ratios to compress the data. For example, one codec might compress data by a factor of two from 8 kbytes/second to 4 kbytes/second, while another codec might compress data by a factor of five from 8 kbytes/second to 1.65 kbytes/second. Codecs exist that have data compression factors of twelve, even as high as fifty, but these require more complex mathematical algorithms and the resultant sound quality may depend on such things as the frequency and computer connection. Exemplary codecs include GSM, a European standard having a 5:1 compression ratio, and the TrueSpeech codec having a 15:1 compression ratio.
Prior art systems typically run only one codec at a time, although the codec may be specified initially by the user through adjustment of the computer settings or through selecting the codec from a file menu. Codec programs at both ends of an exchange must be able to understand each other, so compatibility between codecs may also be an issue.
Codecs do not address data dropouts or loss. Ordinarily, the Internet Protocol uses an Automatic Repeat Request (ARQ) to request retransmissions of lost messages, but voice transmission systems attempt to interpolate lost data rather than resend it.
Many prior art error detection algorithms utilize parity bits or checksums. U.S. Pat. No. 4,447,903 to Sewerinson utilizes a forward error correction algorithm in a system having two information channels, where the signal on the first channel has redundant data delayed m bits in time, and the signal on the second channel has redundant data delayed n bits in time. However, Sewerinson does not provide for changing the level of redundancy in combination with other parameters to eliminate lost data while producing speech with high quality in an Internet telephone system.
U.S. Pat. No. 5,268,908 to Glover et al discloses an on-the-fly error correction algorithm that provides triple coverage and low data delay. However, Glover et al uses parity bits to convert errors and is not concerned with transmitting audio information over an Internet system nor with optimizing the quality of speech data for different codecs.
The television and radio industries employ speech compression techniques in advertisement spots to minimize the amount of advertising time paid for by sponsors. Such techniques speed up the audio data while maintaining a constant pitch or frequency for the voiceover. U.S. Pat. No. 5,583,652 to Ware provides a technique known as time domain harmonic scaling for variable speed playback of an audio/video presentation while keeping the audio and video synchronized as well as the audio pitch undistorted. U.S. Pat. No. 5,555,447 to Kotzin et al mitigates speech loss in a communication system by buffering time-compressed speech in a FIFO until the FIFO is substantially empty. Thereupon, Kotzin et al transitions the communication system from time-compressed to normal speech.